M.2 (NGFF) 的各种 key
===========================

买 M.2 设备时一定要注意设备是哪种 key 的。之前想入一个 M.2 的 WLAN 卡，结果发现 key 不对，装不上。关于每种 key 的凹口位置， [#wiki]_ 上其实有详细的介绍。key ID 从 A 到 M，将 M.2 设备正面朝上放置，引脚向外，key ID 序号越大，凹口位置越向右。

Lenovo ThinkPad T440p (和很多其他的笔记本) 的 WLAN 插槽用的是 A key. 而我手上这台 T440p 用的 AC 7260 有 A key 和 E key 两个凹口，因此这张卡也可以用在 E key 的插槽上。而我之前入手的那张 M.2 的 AR9462，则很不幸的只有 E key 一个凹口，所以装不上笔记本。

ThinkPad 的 WWAN/M.2 SSD 插槽用的是 B key. 所以虽然 WLAN 和 WWAN 两个插槽看起来很像，但其实 A key 的 WLAN 卡是不可能插到 WWAN 的插槽里面的。NVMe SSD 用的是 M key，因此同样是 M.2 SSD，AHCI 和 NVMe 两种 SSD 用的插槽其实也是不一样的。

顺便一说，在 SSD 中，PCIe 和 SATA 是接口，而 NVMe 和 AHCI 是通信协议。一般来说，SATA 接口的硬盘都用 AHCI 协议，但 PCIe 接口的硬盘不一定用 NVMe 协议。例如 Plextor M6e 用的是 AHCI 协议，在系统中会以一个 SATA 控制器存在。 [#m6e]_

.. [#wiki] https://en.wikipedia.org/wiki/M.2#Form_factors_and_keying
.. [#m6e] https://bugzilla.kernel.org/show_bug.cgi?id=42679#c117
